var cart_session_oficina = Array();
var cart_session_name = "oficina_cart_ss";
var cart_cookie_show_name = 'oficina_cart_show';
$(document).ready(function() {

initCart(); /*paso 1*/
    
    
    
    
var contacto = $(".show-car");
var carr = $("#oi-cart");

$(".btn-close").click(function() {
        carr.animate({
            right: "-290px"
        }, 500, function() { });
        contacto.delay("500" ).fadeIn();
        borrarvisible();
    });

    contacto.click(function(){
        $.cookie('visible', '1');
          carr.delay("100").animate({
                right: "0px"
            }, 500, function() { });
            contacto.fadeOut();
     });
});

function borrarvisible(){
 $.cookie('visible', null); 
}

function initCart() {
    var productos = Array('Estado de cuenta',
            'Correo directo',
            'Armado de kit',
            'Respaldo Estándar',
            'Respaldo Premium',
            'Conmutador en la nube',
            'PC en la nube',
            'Videosala',
            'Servidores Virtuales',
            'Video Vigilancia Empresarial',
            'Estado de cuenta',
            'Correo directo',
            'Armado de kit',
            'Conexion',
            'Conexion Conmutador',
            'Servicios Adicionales',
            'Superinternet'
            );
                
                
    cart_session_oficina = getCart();
   
    var $c = $('.cart-form').find('input[type="checkbox"]');
    $c.removeAttr('checked');
    if (cart_session_oficina && cart_session_oficina.length) {
        buildCart('#oi-cart ul', cart_session_oficina);
        var is_hidden = $.cookie(cart_cookie_show_name);
        if (!is_hidden || parseInt(is_hidden) === 0) {
                      
            //comprobamos si ha caducado la sesión de usuario
            if ($.cookie("visible") != null) {
                 $('#oi-cart').fadeIn();
                 $(".show-car").show();
            }
            else
            { 
                 $('#oi-cart').fadeIn().css("right","-290px");
                 $(".show-car").fadeIn();
            }
        }
    } else {
        var $c = $('.cart-form').find('input[type="checkbox"]');
        $c.removeAttr('checked');
    }

    //AGREGA LISTENERS A LOS FORMULARIOS DE LOS ADD ON
    //AGREGA LISTENERS AL FORMULARIO DEL CART

//    $('#oi-cart .btn-close').click(function() {
//        $.cookie(cart_cookie_show_name, 1, {
//            expires: 10,
//            path: '/'
//        });
//    });




    $('.cart-form input[type="checkbox"]').click(function(event) {
        
        event.stopImmediatePropagation()
        var params = ($(this).val()).split("|");
        params.push(productos[(params[0] - 1)]);
       
        var item = {
            "ADD_ON_ID": params[0],
            "PRODUCT_TITLE": params[1],
            "PRICE": params[2],
            "PRODUCT_CATEGORY": params[3],
            "PRODUCT_QTY": params[4] ? params[4] : 1
        }

        if ($(this).is(':checked')) {
            $.cookie('visible', '1');
            var UNIQUE = $(this).parents('.cart-form').hasClass('s-unique');
            
            addToCart(item, UNIQUE);

            if (UNIQUE) {
                var $c = $(this).parents('.cart-form').find('input[type="checkbox"]');
                $c.not($(this)).attr('checked', false);
                $(this).attr('checked', true);
            }

            if ($('#oi-cart').is(':hidden')) {
                $('#oi-cart').fadeIn();
                $('#oi-cart').addClass("open"); 
                
            }
        } else {
            $.cookie('visible', null);
            var c = slugify(item.PRODUCT_TITLE);
            var a = $('p.' + c).next('a.remove');
            a.trigger('click');
             $(".show-car").fadeOut();
             $('#oi-cart').delay("1000")
                .queue( function(next){ 
                $(this). css("right","0px"); 
                next(); 
              });
        }
    });

    $(document).on('click', '#oi-cart ul .cart-p a.remove, #add-on-cart .cart-p a.remove', function() {
        var prefix = $(this).parent().attr('class');
        var product_title = $(this).prev().attr('class');
        prefix = prefix.replace('cart-p', '');
        prefix = prefix.replace(/ /g, '');
        $(this).parent().parent().remove();
        var orgval;
        var items = $.grep(cart_session_oficina, function(e) {
            return $.inArray(slugify(e.PRODUCT_TITLE), Array(product_title)) != -1;
        });

        var e = items[0];
        orgval = e.ADD_ON_ID + "|" + e.PRODUCT_TITLE + "|" + e.PRICE;
        $('form input[value="' + orgval + '"]').removeAttr('checked');


        if (items) {
            cart_session_oficina = $.disjoin(cart_session_oficina, items);
        }
        buildCart('#oi-cart ul', cart_session_oficina);
        buildCart('#add-on-cart ul', cart_session_oficina);

        if ($('#oi-cart li').length == 0) {
            $('#oi-cart').fadeOut();
            $(".show-car").hide();
        }
        fixSession(cart_session_oficina);

    });

    $(document).on('click', 'a.c-refresh', refreshCart);


}

function addToCart(item, UNIQUE) {
    $.cookie(cart_cookie_show_name, 0, {
        expires: 10,
        path: '/'
    });

    if (!UNIQUE) {
        var items = $.grep(cart_session_oficina, function(e) {
            return $.inArray(e.PRODUCT_TITLE, Array(item.PRODUCT_TITLE)) != -1;
        });

        if (items) {
            cart_session_oficina = $.disjoin(cart_session_oficina, items);
        }
        cart_session_oficina.push(item);
    } else {
        //ENCONTRAR EL OBJETO CON EL ID DE PARAMETRO 0 Y MODIFICAR POR EL VALOR ACTUAL SIEMPRE Y CUANDO ESTE OBJETO EXISTA
        //DE LO CONTRARIO SE INSERTA EL OBJETO (PUSH)
        //REALIZAR UN FILTRADO DEL OBJETO
        var lookUP = Array(item.PRODUCT_CATEGORY);
        var items = $.grep(cart_session_oficina, function(e) {
            return $.inArray(e.PRODUCT_CATEGORY, lookUP) != -1;
        });
        if (items) {
            cart_session_oficina = $.disjoin(cart_session_oficina, items);
        }
        cart_session_oficina.push(item);
    }
    buildCart('#oi-cart ul', cart_session_oficina);
    //Cufon.refresh();
    fixSession(cart_session_oficina);
}

//function buildContainer(item, wrapper) {
//    var container = $(wrapper).find('.' + slugify(item.PRODUCT_CATEGORY));
//    var template;
//    if (!container.length) {
//        template = $('<li></li>');
//        container = $('<div></div>');
//        container.addClass('cart-p');
//        container.addClass(slugify(item.PRODUCT_CATEGORY));
//        container.append('<p><strong>' + item.PRODUCT_CATEGORY + '</strong></p>');
//                container.append('<p class="">' + item.PRODUCT_TITLE  + '</p>');
////        container.append('<p class="' + slugify(item.PRODUCT_TITLE) + '">' + item.PRODUCT_TITLE + ' $' + addCommas(item.PRODUCT_QTY * item.PRICE) + '</p>');
//           //remove---eliminar
//        container.append('<a class="remove">x</a><br />');
//        if (slugify(item.PRODUCT_CATEGORY) == 'correo-exchange') {
//            //BUSCAR CANTIDAD Y MULTPLICARLA POR EL PRECIO
//            container.append('<label>No. de Cuentas</label><input type="text" value="' + item.PRODUCT_QTY + '" name="' + item.PRODUCT_TITLE + '" class="no_cuentas"/><a href="#" class="c-refresh">aplicar</a>');
//        }
//        container.attr('rel', item.PRODUCT_TITLE + '|' + item.PRICE + '|' + item.PRODUCT_CATEGORY + '|' + item.PRODUCT_QTY);
//        template.append(container);
//    } else {
//        //BUSCAR CANTIDAD Y MULTPLICARLA POR EL PRECIO
//        template = container.parent();
//        container.attr('rel', item.PRODUCT_TITLE + '|' + item.PRICE + '|' + item.PRODUCT_CATEGORY + '|' + item.PRODUCT_QTY);
////        container.append('<p class="' + slugify(item.PRODUCT_TITLE) + '">' + item.PRODUCT_TITLE + ' $' + addCommas(item.PRODUCT_QTY * item.PRICE) + '</p>');
//        container.append('<p class="' + slugify(item.PRODUCT_TITLE) + '">' + item.PRODUCT_TITLE +'</p>');      
//        //remove---eliminar
//        container.append('<a class="remove">x</a><br />');
//        if (slugify(item.PRODUCT_CATEGORY) == 'correo-exchange') {
//            container.append('<label>No. de Cuentas</label><input type="text" value="' + item.PRODUCT_QTY + '" name="' + item.PRODUCT_TITLE + '" class="no_cuentas"/><a href="#" class="c-refresh">aplicar</a>');
//
//        }
//    }
    function buildContainer(item, wrapper) {
    var container = $(wrapper).find('.' + slugify(item.PRODUCT_CATEGORY));
    var template;
    if (!container.length) {
        template = $('<li></li>');
        container = $('<div></div>');
        container.addClass('cart-p');
        container.addClass(slugify(item.PRODUCT_CATEGORY));
        container.append('<p><strong>' + item.PRODUCT_CATEGORY + '</strong></p>');
        container.append('<p class="' + slugify(item.PRODUCT_TITLE) + '">' + item.PRODUCT_TITLE + '</p>');
        container.append('<a class="remove"></a><br />');
        if (slugify(item.PRODUCT_CATEGORY) == 'correo-exchange') {
            //BUSCAR CANTIDAD Y MULTPLICARLA POR EL PRECIO
            container.append('<label>No. de Cuentas</label><input type="text" value="' + item.PRODUCT_QTY + '" name="' + item.PRODUCT_TITLE + '" class="no_cuentas"/><a href="#" class="c-refresh">aplicar</a>');

        }
        container.attr('rel', item.PRODUCT_TITLE + '|' + item.PRICE + '|' + item.PRODUCT_CATEGORY + '|' + item.PRODUCT_QTY);
        template.append(container);
    } else {
        //BUSCAR CANTIDAD Y MULTPLICARLA POR EL PRECIO
        template = container.parent();
        container.attr('rel', item.PRODUCT_TITLE + '|' + item.PRICE + '|' + item.PRODUCT_CATEGORY + '|' + item.PRODUCT_QTY);
        container.append('<p class="' + slugify(item.PRODUCT_TITLE) + '">' + item.PRODUCT_TITLE + ' $' + addCommas(item.PRODUCT_QTY * item.PRICE) + '</p>');
        container.append('<a class="remove" ></a><br />');
        if (slugify(item.PRODUCT_CATEGORY) == 'correo-exchange') {
            container.append('<label>No. de Cuentas</label><input type="text" value="' + item.PRODUCT_QTY + '" name="' + item.PRODUCT_TITLE + '" class="no_cuentas"/><a href="#" class="c-refresh">aplicar</a>');

        }
    }
    
    
    

    $(document).on('keyup', 'input.no_cuentas', function() {
        //VALIDAR QUE SEA ENTERO
        var qty = $(this).val();

        if (!isNumber(qty)) {
            $(this).addClass('error');
        } else {
            //AGREGAR AL COOKIE
            $(this).removeClass('error');
            var id_cat = $(this).attr('name');

            var lookUP = Array(id_cat);
            var items = $.grep(cart_session_oficina, function(e) {
                return $.inArray(e.PRODUCT_TITLE, lookUP) != -1;
            });

            var item = items[0];
            item.PRODUCT_QTY = qty;

            if (items) {
                cart_session_oficina = $.disjoin(cart_session_oficina, items);
            }

            cart_session_oficina.push(item);
            fixSession(cart_session_oficina);

        }
    });

    return template;
}

function addCommas(nStr) {
    nStr += '';
    var x = nStr.split('.');
    var x1 = x[0];
    var x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

function findKeys(elements) {
    var keys = Array();
    for (var i = 0; i < elements.length; i++) {
        var obj = elements[i];
        keys.push(obj.PRODUCT_CATEGORY);
    }

    keys = $.grep(keys, function(v, k) {
        return $.inArray(v, keys) === k;
    });

    return keys;
}

function buildCart(element, elements) {
    var count_items = 0;
    var keys = findKeys(elements);
    $(element).html('');
    var subtotal = 0;
    for (var i = 0; i < keys.length; i++) {
        var k = Array(keys[i]);
        var items = $.grep(elements, function(e) {
            return $.inArray(e.PRODUCT_CATEGORY, k) != -1;
        });
        for (var ix = 0; ix < items.length; ix++) {
            var obj = items[ix];
            if (items) {
                $(element).append(buildContainer(obj, element));
                count_items++;
                subtotal += obj.PRODUCT_QTY * obj.PRICE;
                var key = obj.ADD_ON_ID + "|" + obj.PRODUCT_TITLE + "|" + obj.PRICE;
                if ($('form input[value="' + key + '"]').length) {
                    $('form input[value="' + key + '"]').attr('checked', true);
                }
            }
        }
    }

    if (count_items == 0) {
        $(element).html('');
    }

    if ($('td#label-subtotal').length && subtotal && $('span#label-subtotal').length) {
        $('td#label-subtotal').text('$' + addCommas(subtotal));
        $('span#label-subtotal').text('$' + addCommas(subtotal));
    }

    fixCotizacion();
    // Cufon.refresh();
}

function fixCotizacion() {
    if ($('#add-on-cart .cart-p').length) {
        $('#add-on-cart .cart-table').show();
        $('tbody.t-table').html('');
        $('#add-on-cart .cart-p').each(function() {
            var rel = $(this).attr('rel');

            if (rel) {
                var params = rel.split("|");
                var extra = slugify(params["2"]) === 'correo-exchange' ? "<br/>No. de cuentas: " + params[3] : "";
                $('tbody.t-table').append('<tr><td>' + params[3] + '<a class="remove"></a></td><td>' + params[2] + '</td><td>' + params[0] + extra + '</td><td>' + '$' + addCommas(params[1] * params[3]) + '</td></tr>');
            }
        });
        $('#add-on-cart ul').hide();
        $('tbody.t-table a.remove').click(function() {
            var i = $('tbody.t-table a').index($(this));
            $('#add-on-cart ul a.remove').eq(i).trigger('click');
        });
    } else {
        $('#add-on-cart .cart-table').hide();
        $('tbody.t-table').html('');
    }

//ADD LISTENERS TO TRIGGER 


}

//obtien el carro en caso de que exita
function getCart() {
    var elements = Array();
    var cookie_content = $.cookie(cart_session_name);
    if (cookie_content) {
        elements = JSON.parse(cookie_content);
    }
    return elements;
}

function fixSession(params) {
    var cookie_val = JSON.stringify(params);
    cookie_val = unescape(cookie_val.replace(/\\u/g, '%u'));
    $.cookie(cart_session_name, cookie_val, {
        expires: 10,
        path: '/'
    });


}

function resizeMe() {
    $("#backgroundPopup").css({
        "height": $(window).height() + 300,
        "width": "100%"
    });

    $("div.mb-wrapper").css({
        "width": $(window).width()
    });

    $('.mb-panel').eq(0).css({
        "margin-left": ($(window).width() - 700) / 2
    });
}

function slugify(string) {
    string = string.toLowerCase();
    string = string.replace('/\s/g', '-');
    string = string.replace(/ /g, '-');
    string = string.replace('(', '');
    string = string.replace(')', '');
    return string;
}

function fancyComplete() {

}

$.disjoin = function(a, b) {
    return $.grep(a, function($e) {
        return $.inArray($e, b) == -1;
    });
};


function refreshCart() {
    buildCart('#oi-cart ul', cart_session_oficina);
    buildCart('#add-on-cart ul', cart_session_oficina);
}

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}
function includecar(){
    $(".shop-ibs").append("<div class='carro'><h1>Elcarrose agrego</h1></div>");
}